// https://leetcode.cn/problems/find-minimum-operations-to-make-all-elements-divisible-by-three/?envType=daily-question&envId=2025-11-22

// 算法思路总结：
// 1. 遍历数组检查每个元素对3取模的结果
// 2. 余数不为0时需要一次操作使其被3整除
// 3. 操作方式为加1或减1，总能一步完成
// 4. 时间复杂度：O(N)，空间复杂度：O(1)

#include <iostream>
using namespace std;

#include <vector>

class Solution 
{
public:
    int minimumOperations(vector<int>& nums) 
    {
        int m = nums.size();

        int ret = 0;
        for (const int& num : nums)
        {
            if (num % 3 != 0)
            {
                ret++;
            }
        }

        return ret;
    }
};

int main()
{
    Solution sol;

    vector<int> nums1 = {1,2,3,4}, nums2 = {3,6,9};

    cout << sol.minimumOperations(nums1) << endl;
    cout << sol.minimumOperations(nums2) << endl;

    return 0;
}